/*
设计思路是利用迭代的方式来生成斐波那契数列，并在生成的过程中累加所有小于指定阈值且为奇数的斐波那契数。
通过初始化两个变量来表示连续的斐波那契数，并在每次迭代中更新这两个变量以及奇数和，
直到当前斐波那契数达到或超过阈值，从而高效地计算出所需的奇数斐波那契数之和。
*/

pub fn odd_fibnacci_sum(threshold: u32) -> u32 {
    // TODO: 这里写逻辑
    // todo!()
    // 初始化前两个斐波那契数，a为第一个数（0），b为第二个数（1）
    let mut a = 0;
    let mut b = 1;
    // 初始化奇数和为0
    let mut sum = 0;

    // 循环直到当前斐波那契数a大于等于阈值threshold
    while a < threshold {
        // 如果当前斐波那契数a是奇数，则累加到sum中
        if a % 2 != 0 {
            sum += a;
        }
        // 计算下一个斐波那契数，即当前两个数的和
        let next = a + b;
        // 更新a为b，即移动到下一个斐波那契数
        a = b;
        // 更新b为下一个斐波那契数
        b = next;
    }

    // 返回计算出的奇数斐波那契数之和
    sum
}
